package fr.mistra.exercice.bibliotheque.services;

import java.util.List;


import fr.mistra.exercice.bibliotheque.dao.DAOException;
import fr.mistra.exercice.bibliotheque.dao.DAOFactory;
import fr.mistra.exercice.bibliotheque.dao.LivreDAO;
import fr.mistra.exercice.bibliotheque.dao.NoSuchIdException;
import fr.mistra.exercice.bibliotheque.modeles.Livre;

public class LivreService {
	private static LivreService service;

	private LivreDAO dao;
	
	private LivreService() {
		dao = DAOFactory.getLivreDAO();
	}
	
	public static LivreService getLivreService() {
		if (service == null) {
			service = new LivreService();
		}
		return service;
	}
	
	/**
	 * Cr�e un nouveau Livre. 
	 * @param titre		Le titre du livre
	 * @param auteur	L'auteur du livre
	 * @param isbn		Le code ISBN du livre
	 * @return Le livre cr��.
	 * @throws DAOException	si le livre n'a pu �tre ajout� correctement par la DAO.
	 */
	public Livre creerNouveauLivre(String titre, String auteur, String isbn) throws DAOException {
		Livre l = new Livre(titre, auteur, isbn);
		
		dao.ajouterLivre(l);	//Se chargera de modifier l.id avec l'id affect� � ce Livre.
		return l;
	}
		
	public Livre getLivre(long idLivre) throws DAOException, NoSuchIdException {
		return dao.getLivre(idLivre);
	}
		
	public List<Livre> getLivres() throws DAOException {
		return dao.getLivres();
	}
}
